package com.diaohaiwen.basic.file.obj.model.table;

import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.table.TableDef;

/**
 * 文件配置 表定义层。
 *
 * @author 刁海文
 * @since 2023-12-16 22:41:40
 */
public class FilesDef extends TableDef {

    /**
     * 文件配置
     */
    public static final FilesDef Files = new FilesDef();

    /**
     * ID
     */
    public final QueryColumn Id = new QueryColumn(this, "id");

    /**
     * 文件后缀
     */
    public final QueryColumn Ext = new QueryColumn(this, "ext");

    /**
     * 文件MD5值
     */
    public final QueryColumn Md5 = new QueryColumn(this, "md5");

    /**
     * 令牌桶
     */
    public final QueryColumn Bucket = new QueryColumn(this, "bucket");

    /**
     * 文件夹
     */
    public final QueryColumn Folder = new QueryColumn(this, "folder");

    /**
     * 文件大小(单位KB)
     */
    public final QueryColumn FileSize = new QueryColumn(this, "file_size");

    /**
     * 文件名称
     */
    public final QueryColumn Filename = new QueryColumn(this, "filename");

    /**
     * 创建时间
     */
    public final QueryColumn CreateTime = new QueryColumn(this, "create_time");

    /**
     * 文件类型
     */
    public final QueryColumn ContentType = new QueryColumn(this, "content_type");

    /**
     * 原始文件名称
     */
    public final QueryColumn OriginalName = new QueryColumn(this, "original_name");

    /**
     * 引用次数
     */
    public final QueryColumn CitationNumber = new QueryColumn(this, "citation_number");

    /**
     * 所有字段。
     */
    public final QueryColumn AllColumns = new QueryColumn(this, "*");

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] DefaultColumns = new QueryColumn[]{Id, Bucket, Folder, Md5, Filename, OriginalName, Ext, ContentType, FileSize, CitationNumber, CreateTime};

    public FilesDef() {
        super("", "files");
    }

}
